Replace Android-only WindowInsets.isImeVisible with expect/actual for iOS compatibility#6795
Open
michaelabon wants to merge 2 commits intostreetcomplete:masterfrom
Open
Replace Android-only WindowInsets.isImeVisible with expect/actual for iOS compatibility#6795michaelabon wants to merge 2 commits intostreetcomplete:masterfrom
michaelabon wants to merge 2 commits intostreetcomplete:masterfrom
Conversation
… iOS compatibility AnAddressNumberInput.kt used `WindowInsets.isImeVisible`, which is a Jetpack Compose Android-only API unavailable in Compose Multiplatform for iOS targets. Introduce an `isImeVisible()` expect/actual function in ui/util/: - commonMain: expect declaration - androidMain: delegates to WindowInsets.isImeVisible - iosMain: returns false (keyboard detection can be added later) Part of the iOS port effort (streetcomplete#5421).
westnordost
reviewed
Apr 2, 2026
Member
There was a problem hiding this comment.
Hmm, this one is difficult.
The "switch keyboard between alphanumeric and numeric" button is only shown when the keyboard is visible. This button is important to input the house number correctly, e.g. for house numbers like "53b".
So, just returning false on iOS is not going to cut it. On iOS, there is an API for that, one can subscribe to
and then update a state accordingly. Currently I don't have this project set up on a mac yet so without testing an implementation it's no use. Do you?
app/src/commonMain/kotlin/de/westnordost/streetcomplete/ui/util/IsImeVisible.kt
Show resolved
Hide resolved
Member
|
(Alternative to implementing it right away would be to return |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
AnAddressNumberInput.ktincommonMainusesWindowInsets.isImeVisible, which is a Jetpack Compose Android-only API not available in Compose Multiplatform 1.10.0 for iOS targets.This introduces a small
isImeVisible()expect/actual function inui/util/:WindowInsets.isImeVisible(preserving existing behaviour)falsefor now (proper keyboard visibility detection can be wired up later)Follows the existing expect/actual conventions in the codebase (e.g.
util/locale/,util/platform/).Part of the iOS port effort (#5421).